﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using RegistroMascotas.Modelo;
using Service;
using Data;

namespace RegistroMascotas
{
    public partial class modificacion_dueño_veterinario : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Persona p = new Persona();
            string path = "";
            bienvenido.Text = "Bienvenido " + User.Identity.Name;
            cuentacentro.Visible = true;
            cuentader.Visible = true;

            if (!IsPostBack)
            {

                try
                {
                    //trabajamos con el objeto dueño por una cuestion de comodidad, aunque podriamos estar tratando con un veterinario.
                    p = (Persona)PersonaDAO.traerDatosUsuario(Session["UsuarioBuscado"].ToString());

                    titulo.InnerText = titulo.InnerText + p.Nombre;
                    datos_nombre.Text = p.Nombre;
                    input_domicilio.Text = p.Direccion;
                    input_telefono.Text = p.Telefono.ToString();

                    switch (p.TipoUsuario)
                    {
                        case 3:
                            Dueño d = new Dueño();
                            d = (Dueño)PersonaDAO.traerDatosUsuario(Session["UsuarioBuscado"].ToString());

                            datos_dni.Text = d.Dni.ToString();
                            datos_cant_denuncias.Text = d.CantDenuncias.ToString();
                            datos_sexo.Text = d.Sexo;
                            break;
                        case 4:
                            Veterinario v = new Veterinario();
                            v = (Veterinario)PersonaDAO.traerDatosUsuario(Session["UsuarioBuscado"].ToString());

                            datos_dni.Text = v.Matricula.ToString();
                            datos_cant_denuncias.Text = v.CantDenuncias.ToString();
                            datos_sexo.Text = v.Sexo;
                            break;
                    }

                    datos_usuario.Text = p.Usuario;

                    if (p.Imagen != null)
                    {
                        if (p.Imagen != String.Empty)
                        {
                            System.Drawing.Image img = Validaciones.StringToImage(p.Imagen);
                            path = "/temp/" + Guid.NewGuid() + ".jpg";
                            img.Save(Server.MapPath(path));

                            datos_foto.ImageUrl = path;
                        }
                        else
                        {
                            datos_foto.ImageUrl = "imgs/micuenta-imagen.png";
                        }
                    }
                    else
                    {
                        datos_foto.ImageUrl = "imgs/micuenta-imagen.png";
                    }
                }
                catch (Exception ex)
                {
                    cuentacentro.Visible = false;
                    cuentader.Visible = false;
                    lblNotificacion.Text = ex.Message;
                    lblNotificacion.CssClass = "errores";
                }
            }
        }

        protected void btnGuardarCambios_Click(object sender, EventArgs e)
        {
            Persona p = (Persona)PersonaDAO.traerDatosUsuario(Session["UsuarioBuscado"].ToString());
            string telefono = p.Telefono;
            string domicilio = p.Direccion;
            bool exito = false;

            try
            {
                if (input_telefono.Text != telefono)
                {
                    p.Telefono = input_telefono.Text;
                }

                if (input_domicilio.Text != domicilio)
                {
                    p.Direccion = input_domicilio.Text;
                }

                exito = PersonaDAO.modificarVeterinarioDueñoPorCentro(p);

                if (!exito)
                {
                    throw new Exception("No se pudo modificar los datos del dueño/veterinario.");
                }
                else
                {
                    cuentacentro.Visible = false;
                    cuentader.Visible = false;
                    lblNotificacion.Text = "¡La modificación se ha realizado con éxito!";
                }
            }
            catch (Exception ex)
            {
                cuentacentro.Visible = false;
                cuentader.Visible = false;
                lblNotificacion.Text = ex.Message;
                lblNotificacion.CssClass = "errores";
            }            
        }        
    }    
}